package com.mida.app.report.service;


import com.mida.bms.report.vo.PatientInfoParameterVo;
import com.mida.dms.knw.entity.vo.BodyTreeVo;
import com.mida.dms.knw.entity.vo.KnwNoumenonVo;
import com.mida.dms.knw.entity.vo.KnwSlotVo;
import com.mida.dms.knw.vo.BodyTreeParameterVo;
import com.mida.dms.knw.vo.KnwNoumenonPageVo;
import com.mida.dms.knw.vo.KnwSlotPageVo;
import com.mida.dms.knw.vo.PageResultVo;
import com.mida.tool.common.result.ListResult;

import java.util.List;

/**
 * 快速写入
 */
public interface DocFastWriteService {

    ListResult getDocStructTemplateList(PatientInfoParameterVo vo) throws Exception;

    ListResult getHistoryReportList(PatientInfoParameterVo vo) throws Exception;

    ListResult<KnwNoumenonVo> getKnwNoumenonVoList(KnwNoumenonPageVo vo) throws Exception;

    ListResult<BodyTreeVo> getBodyRootNode(BodyTreeParameterVo vo) throws Exception;

    ListResult<BodyTreeVo> getBodyNodes(BodyTreeParameterVo vo) throws Exception;

    /**
     * 获取人体树结构
     * @param vo
     * @return
     * @throws Exception
     */
    ListResult getBodyMaps(com.mida.dms.knw.vo.PatientInfoParameterVo vo) throws Exception;

    /**
     * 取得推荐诊断列表
     * @param vo
     * @return
     */
    ListResult getRecommendDiagnosticList(com.mida.dms.knw.vo.PatientInfoParameterVo vo) throws Exception;

    /**
     * 根据部位soid、检查类型soid查询相关领域本体的soid
     * @param vo
     * @return
     */
    ListResult getNoumenonDomainSoids(com.mida.dms.knw.vo.PatientInfoParameterVo vo) throws Exception;

    ListResult<List<KnwNoumenonVo>> findAll(String search) throws Exception;

    ListResult<List<KnwSlotVo>> findAllSoltBynoumenonSoid(Long noumenonSoid) throws Exception;

    ListResult<PageResultVo<KnwNoumenonVo>> findPage(KnwNoumenonPageVo vo) throws Exception;

    ListResult<PageResultVo<KnwSlotVo>> findPageSlotBynoumenonSoid(KnwSlotPageVo vo) throws Exception;

    ListResult<KnwNoumenonVo> gainKnwNoumenon(Long soid) throws Exception;

    ListResult<KnwSlotVo> findSlotBySlotSoid(Long soid) throws Exception;
}
